﻿
#ifndef IRenderTarget_h
#define IRenderTarget_h

// CSharp includes.
#include <Typedef.h>
#include <Defines.h>
#include <CSharpPropertyMethods.h>

#include "RenderTargetUsage.h"

namespace Riccsson
{
	namespace Xna
	{
		namespace Framework
		{
			namespace Graphics
			{
                /// <summary>
                /// Represents a render target.
                /// </summary>
                interface IRenderTarget
                {
                    /// <summary>
                    /// Gets the width of the render target in pixels
                    /// </summary>
                    /// <value>The width of the render target in pixels.</value>
					public: virtual PROP3_GET(int, Width) = 0;
					private: PROP3_SET(int, Width) {throw;}

                    /// <summary>
                    /// Gets the height of the render target in pixels
                    /// </summary>
                    /// <value>The height of the render target in pixels.</value>
					public: virtual PROP3_GET(int, Height) = 0;
					private: PROP3_SET(int, Height) {throw;}

                    /// <summary>
                    /// Gets the usage mode of the render target.
                    /// </summary>
                    /// <value>The usage mode of the render target.</value>
					public: virtual PROP3_GET(RenderTargetUsage, renderTargetUsage) = 0;
					private: PROP3_SET(RenderTargetUsage, renderTargetUsage) {throw;}

                };
            }
        }
    }
}

#endif
